Modern electronic computing systems, such as microprocessor systems, typically include a processor and datapath configured to receive and process instructions. Generally, instructions are either “simple” or “complex”. Typical simple instructions encompass a single operation, such as, for example, a load or store from memory. Common Reduced Instruction Set Computers (RISC) employ simple instructions exclusively. Complex instructions typically encompass more than one single operation, such as an add/store, for example. Common Complex Instruction Set Computers (CISC) employ complex instructions and sometimes also employ simple instructions.
These modern processor cores utilize various techniques to increase performance. One such technique is parallel instruction execution. For example, a fixed-point unit instruction and a binary-floating-point unit instruction, among others, can be executed in parallel in different execution units. This can be superscalar or even out-of-order for “simple” type instructions. However, the complex instructions utilized by architectures such as the CISC architecture are generally required to be executed in millicode. This requirement of being executed in millicode makes parallel and out-of-order execution of these complex instructions difficult, if not impossible.